package gui;

import modelo.Coleccionable;
import modelo.Robot;

public class Comunicador {
	protected GUI_Principal gui;
	protected GUI_Tablero juego;
	
	public Comunicador(GUI_Principal g, GUI_Tablero j) {
		this.gui = g;
		this.juego = j;
	}
	
	public Comunicador(GUI_Principal g) {
		this.gui = g;
	}
	
	public void establecerTableroJuego(GUI_Tablero j) {
		this.juego = j;
	}

	
	
	//aca van las operaciones para comunicar a la gui de swing con el canvas opengl del tablero, asi queda todo ordenadito
	
	//metodos para que el tablero le indique a las componentes de swing los datos que tienen que mostrar
	public void actualizarPuntos(int cant) {
		gui.actualizarPuntos(cant);
	}
	
	public void actualizarNafta(int cant) {
		gui.actualizarNafta(cant);
	}
	
	public void actualizarBalas(int cant) {
		gui.actualizarBalas(cant);
	}
	
	public void actualizarBaulColeccionables(Iterable<Coleccionable> baul)	{
		this.gui.actualizarBaulColeccionables(baul);
	}
	
	public void actualizarPintadoActivado() {
		this.gui.actualizarRadioBotonModoPintado(true);
	}
	
	public void actualizarPintadoDesactivado() {
		this.gui.actualizarRadioBotonModoPintado(false);
	}
	
	public void actualizarColorPinturaNegra() {
		this.gui.actualizarRadioBotonPinturaNegra();
	}
	
	public void actualizarColorPinturaBlanca() {
		this.gui.actualizarRadioBotonPinturaBlanca();
	}
	
	
	//metodos para que las componentes de swing le avisen al tablero que accion esta haciendo el usuario
	public void cargarColeccionableEnBaul(){
		this.juego.cargarColeccionableEnBaul();
	}
	
	public void descargarColeccionableBaul() {
		this.juego.descargarColeccionableBaul();
	}
	
	public void moverDerecha() {
		this.juego.moverRobot(Robot.DERECHA);
	}
	
	public void moverIzquierda() {
		this.juego.moverRobot(Robot.IZQUIEDA);
	}
	
	public void moverArriba() {
		this.juego.moverRobot(Robot.ARRIBA);
	}
	
	public void moverAbajo() {
		this.juego.moverRobot(Robot.ABAJO);
	}
	
	public void disparar() {
		this.juego.disparar();
	}
	
	public void activarModoPintado() {
		this.juego.desplegarPincel();
	}
	
	public void desactivarModoPintado() {
		this.juego.guardarPincel();
	}
	
	public void seleccionarPinturaBlanca() {
		this.juego.seleccionarPinturaBlanca();
	}
	
	public void seleccionarPinturaNegra() {
		this.juego.seleccionarPinturaNegra();
	}
	
	public void iniciarConRobotComercial() {
		this.juego.reiniciarConRobotComercial();
	}
	
	public void iniciarConRobotMilitar() {
		this.juego.reiniciarConRobotMilitar();
	}
	
	
}
